package io.gitee.kotle.android.utils

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData

/**
 * 皮肤管理
 */
open class BaseSkinManage<T : BaseSkinManage.SkinPackage> {
    /**
     * 保存皮肤信息
     */
    interface SkinPackage

    /**
     * 当前皮肤数据
     */
    private val _skinData = MutableLiveData<T>()

    /**
     * 皮肤数据
     */
    val skinData: LiveData<T>
        get() = _skinData

    /**
     * 皮肤数据
     */
    val currentSkin
        get() = skinData.value

    /**
     * 更新皮肤
     */
    fun updateSkin(skin: T) {
        _skinData.safeSetValue(skin)
    }
}